package br.com.sisgerenciamento.dao.empresa;

import java.util.ArrayList;

import org.hibernate.Criteria;
import org.hibernate.Session;

import br.com.sisgerenciamento.exceptions.AlterarException;
import br.com.sisgerenciamento.exceptions.ApplicationException;
import br.com.sisgerenciamento.exceptions.ExcluirException;
import br.com.sisgerenciamento.exceptions.InserirException;
import br.com.sisgerenciamento.generic.GenericDAO;
import br.com.sisgerenciamento.model.empresa.EmpresaVO;


public class EmpresaDAOServiceImpl extends GenericDAO< EmpresaVO > implements EmpresaDAOService{

	public EmpresaVO inserir(EmpresaVO vo) throws InserirException {
		return (EmpresaVO) insert(vo);
	}

	public void alterar(EmpresaVO vo) throws AlterarException {
		update(vo);
	}

	public void excluir(EmpresaVO vo) throws ExcluirException {
		delete(vo);
	}

	public EmpresaVO consultarEmpresa() throws ApplicationException {
		Session session = null;
		try {
			session = getSessionAberta();
			Criteria criteria = session.createCriteria( EmpresaVO.class );
			ArrayList<EmpresaVO> empresaVOs = filtro(criteria);
			return empresaVOs.get(0);
		}catch (Exception e) {
			throw new ApplicationException(e.getMessage());
		} finally {
			if (session != null)
				session.close();
		}
	}

	

}
